package org.thread.test06.ts.demo03;

/**
 * sleep()方法与wait方法的区别
 *
 * wait方法的使用
 * <p>
 * 1）wait、notify、notifyAll - 这三个方法必须应用在同步块或者同步方法中
 * 2）这三个方法在Object类中定义，因此，所有的对象都可以访问这三个方法
 * 但是我们是通过(必须)锁对象来访问这三个方法
 *
 * @author CSY
 * @date 2025 - 03 - 13
 */
public class MainTest {
    /**
     * 静态方法只能访问静态成员
     *
     * @param args
     */
    public static void main(String[] args) {
        MyThread mt = new MyThread();

        mt.start();

        try {
            //由于主线程运行的优先级更高，所以让主线程睡觉，以便子线程先运行
            Thread.sleep(1);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }

        //在主线程中使用子线程定义的锁对象
        synchronized (MyThread.LOCK){
            System.out.println("你好");
        }
    }
}
